package com.example.morealipy.util;

import com.example.morealipy.R;
import com.example.morealipy.app.App;
import com.example.morealipy.constant.Constant;
import com.example.morealipy.model.AllApplyTable;
import com.example.morealipy.model.ApplySaveType;
import com.example.morealipy.model.ApplyTable;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ApplyTableManager {
    private static int[] fixed = new int[]{0, 1};
    private static AllApplyTable mAllApplyTable;
    //最近数据
    public  static ArrayList<ApplyTable> mListUserData = new ArrayList<>();
    //底部数据
    public static ArrayList<ApplyTable> mListUnUserData1 = new ArrayList<>();
    public static ArrayList<ApplyTable> mListUnUserData2 = new ArrayList<>();
    public static ArrayList<ApplyTable> mListUnUserData3 = new ArrayList<>();

    public static ArrayList<ApplySaveType> mListSave= new ArrayList<>();
    public static ArrayList<ApplySaveType> mListSaveTitle= new ArrayList<>();
    //title集合
    public static ArrayList<ApplyTable> mListUnUserDataTitle = new ArrayList<>();
    public static ArrayList<ApplyTable> mList;
    /**
     * 加载全部图标
     *
     * @return
     */
    public static  ArrayList<ApplyTable> loadNewsChannelsMore() {
        List<String> channelName = Arrays.asList(App.getAppContext().getResources().getStringArray(R.array.all_apply_name));
        List<String> channelId = Arrays.asList(App.getAppContext().getResources().getStringArray(R.array.all_apply_id));
        List<Integer> channelImgRes = new ArrayList<>();
        firstIcon(channelImgRes);
        ArrayList<ApplyTable> newsChannelTables = new ArrayList<>();
        for (int i = 0; i < channelName.size(); i++) {
            ApplyTable entity = new ApplyTable(
                    channelName.get(i),
                    channelId.get(i),
                    Constant.getType(channelId.get(i)),
                    "",
                    i,
                    isFixed(i),
                    channelImgRes.get(i),
                    i < 6 ? 0 : 1,0);
            if(i > 5)
            newsChannelTables.add(entity);
        }
        return newsChannelTables;
    }



    public static  ArrayList<ApplyTable> dynamicloadNewsChannelsMore(int index) {
        int stringNameId = 0;
        int stringId = 0;
        List<Integer> channelImgRes = new ArrayList<>();
        if(0 == index){
            stringNameId = R.array.all_apply_name;
            stringId = R.array.all_apply_id;
            firstIcon(channelImgRes);
        }else if(1 == index){
            stringNameId = R.array.all_apply_name_one;
            stringId = R.array.all_apply_id_one;
            secondIcon(channelImgRes);
        }else if(2 == index){
            stringNameId = R.array.all_apply_name_two;
            stringId = R.array.all_apply_id_two;
            thirdIcon(channelImgRes);
        }
        List<String> channelName = Arrays.asList(App.getAppContext().getResources().getStringArray(stringNameId));
        List<String> channelId = Arrays.asList(App.getAppContext().getResources().getStringArray(stringId));
        ArrayList<ApplyTable> newsChannelTables = new ArrayList<>();

        for (int i = 0; i < channelName.size(); i++) {
            ApplyTable entity;
            entity = new ApplyTable(
                            channelName.get(i),
                            channelId.get(i),
                            Constant.getType(channelId.get(i)),
                            "",
                            i,
                            isFixed(i),
                            channelImgRes.get(i),
                            1,   2);
            //设置当前数据在哪个集合里面
            entity.setIndexType(index);
            entity.setTitle(false);
            newsChannelTables.add(entity);
        }

        return newsChannelTables;
    }

    private static void firstIcon(List<Integer> channelImgRes) {
//        channelImgRes.add(R.mipmap.dangmianfu);
//        channelImgRes.add(R.mipmap.gupiao);
//        channelImgRes.add(R.mipmap.huilihuansuan);
//        channelImgRes.add(R.mipmap.jipiao);
//        channelImgRes.add(R.mipmap.qingmifu);
//        channelImgRes.add(R.mipmap.shoukuan);
//        channelImgRes.add(R.mipmap.shoujichongzhi);
//        channelImgRes.add(R.mipmap.shuimeidian);
//        channelImgRes.add(R.mipmap.xingyonglkahuankuan);
//        channelImgRes.add(R.mipmap.youxichongzhi);
//        channelImgRes.add(R.mipmap.yuebao);
//        channelImgRes.add(R.mipmap.zhifuboqianbao);
//        channelImgRes.add(R.mipmap.zhuanzhang);

        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
    }


    private static void secondIcon(List<Integer> channelImgRes) {
//        channelImgRes.add(R.mipmap.aa);
//        channelImgRes.add(R.mipmap.kuaidi);
//        channelImgRes.add(R.mipmap.guojihuikuan);
//        channelImgRes.add(R.mipmap.aixingjuankuan);
//        channelImgRes.add(R.mipmap.taodiandian);
//        channelImgRes.add(R.mipmap.huafeizhuanrang);
//        channelImgRes.add(R.mipmap.aigame);
//        channelImgRes.add(R.mipmap.shoujibaol);
//        channelImgRes.add(R.mipmap.tianmaobao);
//        channelImgRes.add(R.mipmap.qianbaopy);
//        channelImgRes.add(R.mipmap.dache);
//        channelImgRes.add(R.mipmap.kuaiqiang);
//        channelImgRes.add(R.mipmap.suishengdai);

        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
    }


    private static void thirdIcon(List<Integer> channelImgRes) {
//        channelImgRes.add(R.mipmap.caipiao);
//        channelImgRes.add(R.mipmap.lvyoutehui);
//        channelImgRes.add(R.mipmap.jizhangben);
//        channelImgRes.add(R.mipmap.taobao);
//        channelImgRes.add(R.mipmap.xiaoyuanyikatong);
//        channelImgRes.add(R.mipmap.zhaocaibao);
//        channelImgRes.add(R.mipmap.yulebao);
//        channelImgRes.add(R.mipmap.wodebaoz);
//        channelImgRes.add(R.mipmap.huiyuantequan);
//        channelImgRes.add(R.mipmap.chenggong);

        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
        channelImgRes.add(R.mipmap.bowei);
    }


    //动态获取全部待添加数据集合
    public static  ArrayList<ApplyTable> dynamicData() {
        mList = new ArrayList<>();
        mListUnUserData1 =  dynamicloadNewsChannelsMore(0);
        mListUnUserData2 = dynamicloadNewsChannelsMore(1);
        mListUnUserData3 = dynamicloadNewsChannelsMore(2);
        for(int i=0;i<3;i++){
            ApplyTable  entity = new ApplyTable();
            entity.setTitle(true);
            ApplySaveType mApplySaveType;
            switch (i) {
                case 0:
                 entity.setItemTypeTitle("最近使用");
                     mApplySaveType = new ApplySaveType();
                    mApplySaveType.setIndex(i);
                    mApplySaveType.setTitle(entity);
                    mApplySaveType.setmList(mListUnUserData1);
                    mListSave.add(mApplySaveType);
                    break;
                case 1:
                    entity.setItemTypeTitle("财富管理");
                     mApplySaveType = new ApplySaveType();
                    mApplySaveType.setIndex(i);
                    mApplySaveType.setTitle(entity);
                    mApplySaveType.setmList(mListUnUserData2);
                    mListSave.add(mApplySaveType);
                    break;
                case 2:
                    entity.setItemTypeTitle("生活方式");
                     mApplySaveType = new ApplySaveType();
                    mApplySaveType.setIndex(i);
                    mApplySaveType.setTitle(entity);
                    mApplySaveType.setmList(mListUnUserData3);
                    mListSave.add(mApplySaveType);
                    break;
            }
            mListUnUserDataTitle.add(entity);
        }


        mListUnUserData1.add(0,mListUnUserDataTitle.get(0));
        mList.addAll(mListUnUserData1);
        mListUnUserData2.add(0,mListUnUserDataTitle.get(1));
        mList.addAll(mListUnUserData2);
        mListUnUserData3.add(0,mListUnUserDataTitle.get(2));
        mList.addAll(mListUnUserData3);
        return mList;
    }


    /**
     * 加载头部新闻类型
     *
     * @return
     */

    public static List<ApplyTable> loadNewsChannelsStatic() {
        List<String> channelName = Arrays.asList(App.getAppContext().getResources().getStringArray(R.array.all_apply_name_s));
        System.out.println(channelName);
        List<String> channelId = Arrays.asList(App.getAppContext().getResources().getStringArray(R.array.all_apply_id_s));
        List<Integer> channelImgRes = new ArrayList<Integer>();
        channelImgRes.add(R.mipmap.dangmianfu);
        channelImgRes.add(R.mipmap.gupiao);
        channelImgRes.add(R.mipmap.huilihuansuan);
        channelImgRes.add(R.mipmap.jipiao);
        channelImgRes.add(R.mipmap.qingmifu);
        channelImgRes.add(R.mipmap.shoukuan);
        ArrayList<ApplyTable> newsChannelTables = new ArrayList<>();
        for (int i = 0; i < channelName.size(); i++) {
            ApplyTable entity = new ApplyTable(channelName.get(i), channelId.get(i)
                    , Constant.getType(channelId.get(i)), "", i, isFixed(i), channelImgRes.get(i), 0,0);
            newsChannelTables.add(entity);
        }
        return newsChannelTables;
    }

    public static boolean isFixed(int i) {
        for (int j = 0; j < fixed.length; j++) {
            return i == fixed[j] ? true : false;
        }
        return false;
    }
}
